package network.fileio;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class SimpleFileClient {
//서버와 연결해서 서버가 보내주는 파일 데이터를 저장(c:\temp)하는 클라이언트 프로그램
	
	public void startClient() throws IOException{
		Socket socket = null;
		BufferedInputStream bis = null;//서버와 연결된 InputStream에 추가할 필터
		BufferedOutputStream bos = null;//FileOutPutStream에 추가할 필터
		
// 1. server와 연결
		try{
		socket = new Socket("192.168.7.46", 5000);//연결할 String ip,int PortNo
		//127.0.0.1은 로컬 호스트를 말한다. 로컬호스트랑 지금 내 컴퓨터를 말한다.
		//2. IOStrem - Socket 을 통해 조회
		
		InputStream is = socket.getInputStream();
		bis = new BufferedInputStream(is);
		//서버로부터 받을 데이터가 있으니까 그걸 연결한건가?
		
		bos = new BufferedOutputStream(new FileOutputStream("c:\\temp\\down\\iespeace2.jpg"));
		
		int data = bis.read();//1 byte input
		while (data != -1){
			bos.write(data);
			data = bis.read();
		}
		System.out.println("----------------서버에서 전송된 파일을 저장했습니다. ------------------------");
		
		}finally {
			if(bis != null)bis.close();
			if(bos != null)bos.close();
			if(socket != null)socket.close();
	}
	
	}
	
	
	public static void main(String[] args) throws IOException {
		new SimpleFileClient().startClient();
	}
}
